/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package dao;

import modelo.Lei;
import java.util.List;
import javax.persistence.EntityManager;
import org.junit.Test;
import static org.junit.Assert.*;

/**
 *
 * @author emersonmx
 */
public class DAOCadastroLeiTeste {

  /**
   * Test of getEntityManager method, of class DAOCadastroLei.
   */
  @Test
  public void testGetEntityManager() {
    System.out.println("getEntityManager");
    DAOCadastroLei instance = new DAOCadastroLei();
    EntityManager result = instance.getEntityManager();
    if (result == null) {
      fail("Não foi criada a instancia do entitymanager");
    }
  }

  /**
   * Test of inserir method, of class DAOCadastroLei.
   */
  @Test
  public void testInserir() {
    System.out.println("inserir");

    DAOCadastroLei instance = new DAOCadastroLei();

    Lei lei = new Lei();
    lei.setTexto("awdawd");
    lei.setEmenta("adawdawd");
    lei.setNumeroLei("123");
    lei.setProcesso("fsdfsd");

    try {
      instance.inserir(lei);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  /**
   * Test of alterar method, of class DAOCadastroLei.
   */
  @Test
  public void testAlterar() throws Exception {
    System.out.println("alterar");

    DAOCadastroLei instance = new DAOCadastroLei();

    List l = instance.pesquisar();
    if (!l.isEmpty()) {
      Lei lei = (Lei) l.get(0);
      lei.setTexto("awdawd");
      lei.setEmenta("adawdawd");
      lei.setNumeroLei("123");
      lei.setProcesso("fsdfsd");

      try {
        instance.alterar(lei);
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
  }

  /**
   * Test of excluir method, of class DAOCadastroLei.
   */
  @Test
  public void testExcluir() throws Exception {
    System.out.println("excluir");
    Long id = 1L;
    DAOCadastroLei instance = new DAOCadastroLei();

    try {
      instance.excluir(id);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  /**
   * Test of pesquisar method, of class DAOCadastroLei.
   */
  @Test
  public void testPesquisar_0args() {
    System.out.println("pesquisar");
    DAOCadastroLei instance = new DAOCadastroLei();
    List expResult = null;
    List result = instance.pesquisar();
    if (result.isEmpty()) {
      fail("Lista de pesquisa vazia");
    }
  }

  /**
   * Test of pesquisar method, of class DAOCadastroLei.
   */
  @Test
  public void testPesquisar_Object() {
    System.out.println("pesquisar");

    DAOCadastroLei instance = new DAOCadastroLei();

    Lei lei = new Lei();

    List result = instance.pesquisar(lei);
    if (result.isEmpty()) {
      fail("Lista de pesquisa vazia");
    }
  }

  /**
   * Test of pesquisar method, of class DAOCadastroLei.
   */
  @Test
  public void testPesquisar_int_int() {
    System.out.println("pesquisar");
    int resultadosMaximo = 10;
    int primeiroResultado = 0;
    DAOCadastroLei instance = new DAOCadastroLei();
    List result = instance.pesquisar(resultadosMaximo, primeiroResultado);
    if (result.isEmpty()) {
      fail("Lista de pesquisa vazia");
    }
  }

  /**
   * Test of pesquisar method, of class DAOCadastroLei.
   */
  @Test
  public void testPesquisar_3args() {
    System.out.println("pesquisar");
    boolean tudo = true;
    int resultadosMaximo = -1;
    int primeiroResultado = -1;
    DAOCadastroLei instance = new DAOCadastroLei();
    List expResult = null;
    List result = instance.pesquisar(tudo, resultadosMaximo, primeiroResultado);
    if (result.isEmpty()) {
      fail("Lista de pesquisa vazia");
    }
  }

  /**
   * Test of pesquisar method, of class DAOCadastroLei.
   */
  @Test
  public void testPesquisar_Long() {
    System.out.println("pesquisar");
    DAOCadastroLei instance = new DAOCadastroLei();
    Long id = ((Lei) instance.pesquisar(1, 0).get(0)).getId();
    Object result = instance.pesquisar(id);
    if (result == null) {
      fail("Objeto não existe!");
    }
  }

  /**
   * Test of contar method, of class DAOCadastroLei.
   */
  @Test
  public void testContar() {
    System.out.println("contar");
    DAOCadastroLei instance = new DAOCadastroLei();
    int result = instance.contar();
    System.out.println(result);
  }

  /**
   * Test of revogar method, of class NegocioCadastroLei.
   */
  @Test
  public void testRevogar() {
    System.out.println("revogar");
    String a = "";
    DAOCadastroLei dao = new DAOCadastroLei();

    List l = dao.pesquisar();

    if (l.isEmpty()) {
      fail("não existe leis");
    }

    Lei lei = (Lei) l.get(0);

    if(dao.revogar(lei.getNumeroLei())) {
      System.out.println("Uhuuull funcionou");
    } else {
      fail("opa quem disse epa! esse revogar ta estranho o,o");
    }
  }
}
